package com.example.demo.service;

import com.example.demo.entity.UserStats;

/**
 * 用户统计服务接口
 * 定义用户统计相关业务操作
 */
public interface UserStatsService {
    
    /**
     * 根据用户ID获取统计信息
     * @param userId 用户ID
     * @return 用户统计信息
     */
    UserStats getUserStats(Long userId);
    
    /**
     * 创建用户统计记录（用户注册时调用）
     * @param userId 用户ID
     * @return 创建的统计记录
     */
    UserStats createUserStats(Long userId);
    
    /**
     * 记录用户登录（更新登录次数和最后登录时间）
     * @param userId 用户ID
     */
    void recordLogin(Long userId);
    
    /**
     * 记录用户登出（更新登出时间和在线时长）
     * @param userId 用户ID
     * @param onlineMinutes 本次在线时长（分钟）
     */
    void recordLogout(Long userId, Long onlineMinutes);
    
    /**
     * 计算用户注册天数
     * @param userId 用户ID
     * @return 注册天数
     */
    Long calculateAccountAge(Long userId);
}
